package com.cskaoyan.javase.io._4data;

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;

/**
 * DataInputStream,数据字节输入流
 * 该对象就专门读数据字节输出流写的内容
 * 它的作用是将数据字节输出流写的内容,读到Java程序中,转换成对应的Java基本数据类型
 *
 * 通过数据字节输出/输入流,可以实现对Java基本数据类型数据的持久化存储
 * 注意:
 * 数据字节输出流怎么写的,就应该用数据输入流怎么读
 * 要完全一一对应,才能保证读的数据是正确的
 *
 * @since 16:18
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) throws IOException {
        // DataInputStream(InputStream in) 	使用指定的底层 InputStream 创建一个数据输入流。
        DataInputStream in = new DataInputStream(new FileInputStream("a.txt"));

        // readXxx(Xxx v)	Xxx 	其中Xxx表示四类八种基本数据类型，表示将外存中对应Java基本数据类型的二进制数据重新读入内存中。返回值就是这个基本数据类型数值。
        // int num = in.readInt();
        // System.out.println(num);
        // double num = in.readDouble();
        // System.out.println(num);
        boolean b = in.readBoolean();
        System.out.println(b);
        // 普通的read方法即便没有数据了,也可以读,返回-1,不会报错
        // System.out.println(in.read());
        // 如果后续没有数据了,再读就会报错
        // int i = in.readInt();
        // System.out.println(i);
        in.close();
    }
}
